Meme Generator

En esta guía, se ofrece un enfoque práctico para implementar una aplicación con llamadas a funciones con Gemma. Esta técnica se puede aplicar a varias versiones del modelo de Gemma a través de una ingeniería de instrucciones cuidadosa. Puedes encontrar más información en Más allá del chatbot: IA de agentes con Gemma.

Explicación de las llamadas a función

La estructura común para las llamadas a funciones incluye algunos componentes clave, que están diseñados para permitir que Gemma interactúe con herramientas o APIs externas.

  1. Describe las herramientas
    Le indicas al modelo las "herramientas" (funciones) que puede usar. Esto incluye lo siguiente:

    • Qué hace la herramienta (descripción)
    • Qué información necesita la herramienta (parámetros)
  2. El usuario hace una pregunta
    Le haces una pregunta al modelo o le asignas una tarea.

  3. Gemma decide
    El modelo determina si necesita una herramienta para responder tu pregunta.

  4. Gemma solicita una herramienta
    Si se necesita una herramienta, Gemma generará un código unido con ```tool_code```

  5. La herramienta hace su trabajo
    La herramienta (función) toma la información del modelo y hace lo que se espera que haga.

  6. La herramienta muestra resultados
    Gemma espera obtener su resultado unido con ```tool_output```

  7. Gemma da la respuesta final
    El modelo usa los resultados de la herramienta para crear una respuesta completa y precisa para ti.

Sugerencias útiles

  • Esquema JSON: El uso del esquema JSON para las definiciones de parámetros, aunque no es obligatorio, ofrece las ventajas de una estructura coherente y una validación automatizada.
  • Comprensión clara: La calidad de la descripción de la función es fundamental para que el modelo identifique correctamente cuándo usarla.
  • Manejo de errores: El manejo de errores sólido es esencial para administrar casos en los que la llamada a función falla o muestra resultados inesperados.
  • Proceso iterativo: A veces, hay varias conversaciones entre el modelo y las llamadas a función.

Ejemplos de instrucciones y resultados

Puedes encontrar el código de esta aplicación en el repositorio de código de Gemma Cookbook.

Pasos 1 y 2: Describe la herramienta y asigna una tarea

Una imagen divertida de un gato

Entrada: Una imagen divertida de un gato
Entrada de texto:

If you decide to invoke any of the function(s), it should be wrapped with ```tool_code```.

You have access to the following tools.

* `generate_meme(image, top_text, middle_text, bottom_text)`: Generate a meme with the given parameters

Make a funny meme with this. "meme.jpg"

Paso 3: Gemma decide y solicita una herramienta

Esta instrucción produciría la siguiente respuesta:

Okay, here's a funny meme based on the image of the surprised cat:

```tool_code
generate_meme(image="meme.jpg", top_text="Me when I hear a creak", middle_text="Is it safe?", bottom_text="Probably not.")
```

Paso 4: La herramienta hace su trabajo

Para procesar el resultado del modelo, deberás ubicar los bloques de código, analizar los argumentos de la función y ejecutar las funciones.

Resultado final del generador de memes